草庐IT

c++ - C 和 C++ 中 WINAPI 的区别

全部标签

C++ WinAPI TextOut() 更新文本

我正在使用WinAPI创建一个Windows应用程序。在处理窗口的WM_PAINT消息时,我正在使用TextOut()函数向用户显示更新的文本。caseWM_PAINT:{PAINTSTRUCTps;HDChdc;hdc=BeginPaint(hwnd,&ps);SelectObject(hdc,hfDefault);//displaytheuserdatainthewindowTextOut(hdc,10,70,"Points:0",9);TextOut(hdc,10,85,"Level:0",8);//...EndPaint(hwnd,&ps);}break;如何在调用函数后更改T

c - 更新标题栏 Winapi

我正在更新窗口的标题栏:/*insidethewindowprocedure*/HWNDedit_handle;/*...*/caseWM_COMMAND:{if(LOWORD(wParam)==2){/*2isthecodeforthebutton*/intlen=GetWindowTextLengthW(edit_handle);if(len>0){wchar_tbuf[len+1];GetWindowTextW(edit_handle,buf,len+1);SetWindowTextW(hwnd,buf);}}break;}但是,当我调用SetWindowTextW时,标题栏没有

c++ - WinAPI ReportEvent - 未安装组件

我已经实现了一个简单的功能来从我的应用程序登录事件查看器。但是,无论错误级别如何,每次我记录内容时都会收到以下消息:ThedescriptionforEventID0fromsourceMyAppEventscannotbefound.Eitherthecomponentthatraisesthiseventisnotinstalledonyourlocalcomputerortheinstallationiscorrupted.Youcaninstallorrepairthecomponentonthelocalcomputer.Iftheeventoriginatedonanoth

windows - 函数 Hook 实际上是如何工作的? WinAPI, C++

我正在将我的DLL注入(inject)到一个进程中,然后像这样Hook一个函数:(recv)BOOLHookFunction(LPCWSTRmoduleName,LPCSTRfuncName,LPVOIDfuncProxy,unsignedchar*lpBackup){BYTEjmp[6]={0xe9,0x00,0x00,0x00,0x00,0xc3};DWORDfuncAddr=(DWORD)GetProcAddress(GetModuleHandle(moduleName),funcName);DWORDprev;VirtualProtect((LPVOID)funcAddr,6,

对 Winapi 路径和文件名的说明(W 函数和 A 函数)

我已经尝试检查使用Wwinapi与A的重要性和原因,(W表示宽字符,A表示ascii,对吗?)我做了一个简单的例子,我收到了这样一个当前用户的临时路径:CHARpszUserTempPathA[MAX_PATH]={0};WCHARpwszUserTempPathW[MAX_PATH]={0};GetTempPathA(MAX_PATH-1,pszUserTempPathA);GetTempPathW(MAX_PATH-1,pwszUserTempPathW);printf("pathA=%s\r\npathW=%ws\r\n",pszUserTempPathA,pwszUserTem

windows - Windows 中的 ls -la 和 ls -l 有什么区别?

ls-la和ls-l都提供了比ls命令更多的信息。然而,因为他们的输出非常相似,我不清楚这两个命令之间的区别是什么。gitbash中的ls-la和ls-l有什么区别? 最佳答案 这是下面标志的含义。两者不一样。在第一种情况下(ls-l)隐藏文件/文件夹不会列出,而在第二种情况下(ls-la)隐藏文件/文件夹将显示。-l-lusealonglistingformat-a-a,--alldonotignoreentriesstartingwith.这意味着也显示隐藏的文件/目录。 关于win

c++ - winapi - 未记录的 Windows 消息 0x0313 是否稳定?

我发现了这条未记录的Windows消息,十六进制代码:0x0313,它是在用户右键单击应用程序的任务栏按钮时发送的。使用/捕获是否稳定? 最佳答案 没有保证,但实际上它可能不会消失。我用谷歌搜索它只是为了确保它不是例如记录的MFC消息。一个结果,来自http://delphi.about.com/od/vclwriteenhance/a/ttaskbarmenu.htm:Whenyouright-clickonataskbarbutton,Windowssendsanundocumentedmessage($0313)totheco

c++ - 它是具有 PathIsRelative 函数的 WinAPI Bug 吗?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion根据MSDN,C:tmp.txt的路径应被视为相对路径,但PathIsRelative()返回FALSE而不是TRUE.这是一个错误吗?还是我哪里弄错了?

c - 使用 WinAPI 按名称获取进程中的指针变量

我不确定问题的标题有多清楚。这是我正在尝试做的事情:我有一个进程,它使用DLL库作为插件。这些库使用函数,与临界区对象同步。我希望所有DLL函数都与相同的临界区对象同步。我想到了以下几点:第一个DLL将初始化一个临界区对象,其他DLL也将使用它,而不是初始化一个新的。但是我怎样才能得到指向第一个DLL的临界区对象的指针呢?我想到的一个解决方案是使用NamedSharedMemory,并将指向临界区对象的指针放在那里。它会起作用,但感觉就像用火箭筒射苍蝇一样。是否有更简单、更惯用的方法来创建具有可检索指针的命名对象? 最佳答案 一个D

c - Windows 和 Linux 中 printf 的区别

其实除了核心C语言,还有一个C库。如果我的理解是正确的,像printf这样的函数是C库的一部分。现在我已经在Windows的TurboC中用C语言编程,在Linux中使用gcc。我的问题是:像printf这样的函数在windows和linux中的代码实现是一样的吗?最终printf函数必须调用核心操作系统中的一个函数(在这两种情况下),以便在屏幕上显示ASCII字符?那么,由于两种操作系统不同,printf的代码实现在两种情况下是否也不同? 最佳答案 当然(printf的实现和中的所有函数)是不同的(在Linux和Windows上)